#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>
#include <QLabel>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPixmap>
#include <QResizeEvent>
#include <QString>

#include "admin_view.h"

#include "registerdialog.h"
#include "logindialog.h"
#include "sqloperator.h"
#include <QLabel> // 引入QLabel头文件
class main_widget : public QWidget
{
    Q_OBJECT

public:
    main_widget(QWidget *parent = nullptr);
    ~main_widget();

    // 设置背景图片
    void setBackground(const QString &imagePath);
    // 获取登录状态和当前用户
      bool isLoggedIn() const;
      QString currentUser() const;



private slots:
     void onLoginBtnClicked();
     void onLoginSuccess(const QString &username);
     void onRegisterBtnClicked();
     void onLoginAdminClicked();

protected:
    // 重写 resizeEvent 实现窗口大小变化时的自适应调整
    void resizeEvent(QResizeEvent *event) override;

private:
    //void setupUI();
    // 界面元素
    QLabel *m_titleLabel;       // 标题标签
    QPushButton *m_registerBtn; // 注册按钮
    QPushButton *m_loginBtn;    // 登录按钮
    QPushButton *m_loginadmin;//guanliyuananniu
    QLabel *m_backgroundLabel;  // 背景图层

    // 布局管理器
    QVBoxLayout *m_mainLayout;  // 主布局
    QHBoxLayout *m_btnLayout;   // 按钮布局

    // 调整字体大小和间距的方法
    void adjustFontSizes();

        SqlOperator m_sqlOperator;
        bool m_isLoggedIn;       // 登录状态标志
        QString m_currentUser;   // 当前登录用户名

       // 声明按钮成员变量
          QPushButton *m_queryBtn;    // 查询按钮
          QPushButton *m_addBtn;      // 添加按钮
          QPushButton *m_editBtn;     // 编辑按钮
          QPushButton *m_deleteBtn;   // 删除按钮
          QPushButton *m_logoutBtn;   // 退出按钮


void initDatabase();


       // 登录成功后的业务处理
       void onUserLoggedIn();
        AdminView * adminLogin;

};

#endif // MAINWIDGET_H

